2026-10-14T23:46:14.7202264Z ##[group]Run node --test plugins/claude-code/test/hooks.test.mjs
2026-10-14T23:46:14.7202373Z [36;1mnode --test plugins/claude-code/test/hooks.test.mjs[0m
2026-10-14T23:46:14.7202389Z shell: /usr/bin/bash -e {0}
2026-10-14T23:46:14.7202404Z env:
2026-10-14T23:46:14.7202415Z   CARGO_TERM_COLOR: never
2026-10-14T23:46:14.7202424Z   WRANGLER_SEND_METRICS: false
2026-10-14T23:46:14.7202435Z ##[endgroup]
2026-10-14T23:46:17.3517369Z ▶ plan
2026-10-14T23:46:17.6007623Z   ✔ SessionStart starts the session (1.608604ms)
2026-10-14T23:46:17.6007776Z   ✔ UserPromptSubmit logs the prompt, cut to the limit (1.477037ms)
2026-10-14T23:46:17.6007879Z   ✔ a turn Claude Code starts itself for a background task is not a prompt (0.254582ms)
2026-10-14T23:46:17.6007970Z   ✔ a prompt's intent is its first line or sentence, plain, clipped on a word (0.464117ms)
2026-10-14T23:46:17.6008046Z   ✔ UserPromptSubmit titles the session with its intent, unless prompts are kept back (0.436375ms)
2026-10-14T23:46:17.6008127Z   ✔ G1T_RECORD_PROMPTS=0 keeps prompts back, and G1T_RECORD=0 everything (0.211728ms)
2026-10-14T23:46:17.6008198Z   ✔ PostToolUse sends the tool and its input's summary, never its response (1.235084ms)
2026-10-14T23:46:17.6008265Z   ✔ PostToolUse after a git push updates the head commit (0.537106ms)
2026-10-14T23:46:17.6008327Z   ✔ PostToolUse remembers the issue a command claims (0.407191ms)
2026-10-14T23:46:17.6008403Z   ✔ Stop sends a heartbeat and SessionEnd ends the session with its reason (0.51305ms)
2026-10-14T23:46:17.6008472Z   ✔ events without a session, and other events, do nothing (0.152729ms)
2026-10-14T23:46:17.6008485Z ✔ plan (8.867261ms)
2026-10-14T23:46:17.6008496Z ▶ subagents
2026-10-14T23:46:17.6008558Z   ✔ SubagentStart starts a session of its own for the subagent (0.35941ms)
2026-10-14T23:46:17.6008631Z   ✔ SubagentStop ends it with its final message, cut to the limit (0.649315ms)
2026-10-14T23:46:17.6008728Z   ✔ an Agent call gives its subagent the task, and once finished its final message, and nothing else of its answer (0.3463ms)
2026-10-14T23:46:17.6008800Z   ✔ what a subagent does is its own session's, and the files it writes are touched (0.257526ms)
2026-10-14T23:46:17.6009230Z   ✔ a skill is its name only (0.181643ms)
2026-10-14T23:46:17.6009301Z   ✔ branches made, commits, claims and g1t's MCP tools are touched (0.439289ms)
2026-10-14T23:46:17.6009359Z   ✔ a hand-off's issue comes with the session (0.130626ms)
2026-10-14T23:46:17.6009372Z ✔ subagents (2.7844ms)
2026-10-14T23:46:17.6009385Z ▶ summaries
2026-10-14T23:46:17.6009453Z   ✔ say what a tool was called with, in one short line (0.527342ms)
2026-10-14T23:46:17.6009477Z   ✔ hide what looks like a secret (0.128683ms)
2026-10-14T23:46:17.6009501Z   ✔ find the issue in a branch name (0.501473ms)
2026-10-14T23:46:17.6009514Z ✔ summaries (1.333151ms)
2026-10-14T23:46:17.6009528Z ▶ the plugin's files
2026-10-14T23:46:17.6009540Z   ✔ parse as JSON (0.6524ms)
2026-10-14T23:46:17.6009605Z   ✔ the AGENTS.md snippet is the one in the docs (0.39919ms)
2026-10-14T23:46:17.6009629Z ✔ the plugin's files (1.239771ms)
2026-10-14T23:46:17.6009644Z ▶ with a working copy
2026-10-14T23:46:17.6009709Z   ✔ SessionStart gives Claude the branch's issue's work context (65.771766ms)
2026-10-14T23:46:17.6009772Z   ✔ the background half starts the session once, then logs into it (287.731899ms)
2026-10-14T23:46:17.6009840Z   ✔ background retrieval reaches the next tool without auto-acknowledging (184.921562ms)
2026-10-14T23:46:17.6009904Z   ✔ hooks after SessionStart record; SessionEnd forgets the session (235.697686ms)
2026-10-14T23:46:17.6009971Z   ✔ a push that reached the remote updates the head commit (236.189545ms)
2026-10-14T23:46:17.6010060Z   ✔ each subagent is a session of its own under this one, whatever order its hooks arrive in (481.727042ms)
2026-10-14T23:46:17.6010124Z   ✔ a subagent whose stop arrives first is started, then ended (237.589446ms)
2026-10-14T23:46:17.6010548Z   ✔ an Agent call that finished ends its subagent with what it reported (285.4808ms)
2026-10-14T23:46:17.6010605Z   ✔ a hand-off names its issue at the start (195.263186ms)
2026-10-14T23:46:17.6010668Z   ✔ a missing CLI records nothing and says so once (28.453384ms)
2026-10-14T23:46:17.6010735Z   ✔ a signed-out CLI is said once, at the next prompt (134.56766ms)
2026-10-14T23:46:17.6010796Z   ✔ outside a g1t repository nothing happens (20.085772ms)
2026-10-14T23:46:19.6402516Z   ✔ the script answers SessionStart on stdin quickly, as JSON (458.038702ms)
2026-10-14T23:46:19.9048848Z   ✔ the script prints nothing for a prompt, and never fails on bad input (103.46484ms)
2026-10-14T23:46:19.9049011Z   ✔ a CLI older than the plugin needs records nothing and says so once, with how to update it (99.758687ms)
2026-10-14T23:46:19.9049075Z   ✔ a CLI that refuses a command (exit 2) is said once, as one to update (135.183486ms)
2026-10-14T23:46:19.9049124Z   ✔ the stand-in CLI refuses what the real one refuses (15.057364ms)
2026-10-14T23:46:19.9049177Z   ✔ PowerShell commands are read as Bash ones are, and a subagent's act as its session (269.125267ms)
2026-10-14T23:46:19.9049244Z   ✔ a skill typed as /plugin:name is recorded once in its turn, however Claude Code then runs it (382.335517ms)
2026-10-14T23:46:19.9049306Z   ✔ with no issue in sight, Claude is told the session is recorded and when to open or claim one (23.123563ms)
2026-10-14T23:46:19.9049368Z   ✔ the session's first prompt with an intent titles it, once, and never over a title it has (420.293619ms)
2026-10-14T23:46:19.9050223Z   ✔ a session titled already keeps its title (284.859668ms)
2026-10-14T23:46:19.9050294Z   ✔ Claude's own commands get the session's id once it has started (185.369323ms)
2026-10-14T23:46:19.9050361Z   ✔ on a Node older than 18 nothing is recorded, and that is said once (15.336353ms)
2026-10-14T23:46:19.9050376Z ✔ with a working copy (4789.468617ms)
2026-10-14T23:46:19.9050438Z ✔ pending updates survive delivery and stay isolated between parent and child (4.153505ms)
2026-10-14T23:46:19.9050527Z ✔ a CLI too old to acknowledge is told to update, once per set of updates (2.090929ms)
2026-10-14T23:46:19.9050615Z ✔ an acknowledgement refreshes the inbox at once, from the shell or MCP (0.477967ms)
2026-10-14T23:46:19.9050635Z ℹ tests 50
2026-10-14T23:46:19.9050661Z ℹ suites 5
2026-10-14T23:46:19.9050675Z ℹ pass 50
2026-10-14T23:46:19.9051208Z ℹ fail 0
2026-10-14T23:46:19.9051222Z ℹ cancelled 0
2026-10-14T23:46:19.9051234Z ℹ skipped 0
2026-10-14T23:46:19.9051246Z ℹ todo 0
2026-10-14T23:46:19.9051260Z ℹ duration_ms 4906.779141
